草庐IT

c++ - 插入 vector

全部标签

c# - 来自 C 背景,在 C# 中实现 const 引用数据表/结构的好方法是什么?

我将给出一个我熟悉的使用C实现的简单示例。我认为重点在于如何使用数据,而不是我在示例中使用它所做的事情:)typedefstruct{constchar*description;uint32_tcolour_id;uint32_tquantity;}my_data_t;constmy_data_tref_data[]={{"BrownBear",0x88,10},{"BlueHorse",0x666,42},{"PurpleCat",123456,50},};voidshow_animals(void){my_data_t*ptr;ptr=&ref_data[2];console_wr

c# - XmlDocument.Save() 在文档类型声明中插入空方括号

每次调用方法时XmlDocument.Save(fooFilepath);它在DOCTYPE标签的末尾插入两个方括号,例如有谁知道为什么会这样?我显然不希望这种情况发生。 最佳答案 即anormal(andoptional)partofaDOCTYPEdeclaration.DTD包含文档的任何内部子集声明。 关于c#-XmlDocument.Save()在文档类型声明中插入空方括号,我们在StackOverflow上找到一个类似的问题: https://st

c# - Resharper 查找模式并替换 - 如何插入字符串

我们有一个完整性检查方法voidIsNotNull(Tobj){...}调用IsNotNull(obj);我想替换它以调用另一个重载,该重载采用字符串类型(消息)的第二个参数voidIsNotNull(Tobj,stringmessage){...}所以我想将调用更改为IsNotNull(obj,"objisnull");我正在尝试使用resharper的查找模式和替换来实现这一点。所以我的查找模式是:IsNotNull($args$)-这工作正常并且它找到方法调用替换模式:IsNotNull($args$,"$args$isnull")-这什么都不做我也试过这个IsNotNull($

c# - 如何通过引用修改该字符串的非托管 C 库来发送字符串?

我是与非托管库交互的新手。我有一个非托管C函数,它通过函数内的引用修改字符串。我在从C#传递字符串并通过C函数修改它时遇到问题。这是C函数:__declspec(dllexport)void__stdcallTest(char*name){*name="Bar";}这是C#DLL导入代码:[DllImport(@"C:/blah/mylibrary.dll")]publicexternstaticstringTest(stringname);这是我用来调用函数的代码:strings="foo";Test(s);//Iwantstobe"Bar"aftertheaboveline我曾尝试

c# - 如何制作从 C# "Thread-safe"调用的 C (P/invoke) 代码

我有一些使用单个全局变量的简单C代码。显然这不是线程安全的,所以当我在C#中使用P/invoke从多个线程调用它时,事情就搞砸了。如何为每个线程单独导入此函数,或使其成为线程安全的?我尝试声明变量__declspec(thread),但这导致程序崩溃。我还尝试制作一个C++/CLI类,但它不允许成员函数是__declspec(naked),我需要(我正在使用内联汇编)。我在编写多线程C++代码方面经验不足,因此可能缺少某些内容。下面是一些示例代码:C#[DllImport("MyDll.dll",CallingConvention=CallingConvention.Cdecl)]pu

c# - Dapper批量插入返回序列号

我试图在Npgsql上使用Dapper执行大容量插入,该插入返回新插入的行的ID。在我的两个示例中都使用了以下插入语句:varquery="INSERTINTO\"MyTable\"(\"Value\")VALUES(@Value)RETURNING\"ID\"";首先,我尝试添加具有“值”属性的对象数组:varvalues=new[]{new{Value=0.0},new{Value=0.5}};varids=connection.Query(query,values);但是,该操作失败,并显示NpgsqlException:“错误:42703:列“值”不存在”。阅读thisques

c# - 如何将一个 FlowDocument 中的内联内容插入到另一个 FlowDocument 中?

我正在构建一个应用程序,该应用程序需要允许用户将来自一个RichTextBox的文本插入到另一个的当前插入符位置。在运行此技术之前,我花了很多时间来研究FlowDocument的对象模型-source和target都是FlowDocument:using(MemoryStreamms=newMemoryStream()){TextRangetr=newTextRange(source.ContentStart,source.ContentEnd);tr.Save(ms,DataFormats.Xaml);ms.Seek(0,SeekOrigin.Begin);tr=newTextRan

c# - 使用 SQL 注入(inject)安全的参数插入数据库?

我读了一些关于SQL注入(inject)的文章,我想确保我的代码是“安全的”,我正计划使用RegExp验证器来检查用户输入,但这里的另一篇文章建议只使用参数化查询,我正在使用它们,但我想确保我的代码是安全的,对吗?using(SqlConnectiondataConnection=newSqlConnection(myConnectionString)){using(SqlCommanddataCommand=dataConnection.CreateCommand()){dataCommand.CommandText="INSERTINTOLines(Name,CreationTim

c# - 随机整数中最可能的位

我做过这样的实验——用C和C#制作了1000万个随机数。然后统计随机整数中15位中的每一位被设置了多少次。(我选择15位是因为C只支持最大0x7fff的随机整数)。我得到的是:我有两个问题:为什么有3个最可能的位?在C情况下,位8,10,12是最有可能的。和C#位6,8,11最有可能。与C#最可能位相比,C#最可能位也似乎大部分移动了2个位置。为什么是这样?因为C#使用其他RAND_MAX常量还是什么?我的C测试代码:voidaccumulateResults(intrandom,intbitSet[15]){inti;intisBitSet;for(i=0;iC#的测试代码:stat

c# - C DLL 中的 PInvoke char* 在 C# 中处理为字符串。空字符问题

CDLL中的函数如下所示:intmy_Funct(char*input,char*output);我必须从C#应用程序调用它。我通过以下方式执行此操作:...DllImportstuff...publicstaticexternintmy_Funct(stringinput,stringoutput);输入字符串完美地传输到DLL(我有可见的证据)。该函数填写的输出虽然是错误的。我有hexa数据,比如:3F-D9-00-01但不幸的是,两个零之后的所有内容都被截断了,只有前两个字节进入了我的C#应用程序。它发生了,因为(我猜)它被视为空字符并将其作为字符串的结尾。知道如何摆脱它吗?我试